package com.up.vms.application.common.utils;


import com.up.vms.application.constants.Constants;

import java.util.Date;

/**
 * @author ZhangSuchao
 * @create 2019/6/27
 * @since 1.0.0
 */

public class CourseUtils {

    /**
     * 通过时间获取课程状态
     *
     * @param regStartTime
     * @param regEndTime
     * @param startTime
     * @param endTime
     * @param nowDte
     * @return
     */
    public static int getCourseStateByTime(Date regStartTime, Date regEndTime, Date startTime, Date endTime, Date nowDte) {
        int state = 0; //没有状态
        //没有注册开始时间与结束时间，则使用开课开始与结束时间
        if (regStartTime == null || regEndTime == null) {
            if (nowDte.before(startTime)) { //现在的时间小于开课时间

                state = Constants.BEFORE_REGIST_END; //报名中
            } else if (nowDte.before(endTime)) {
                state = Constants.GOING_CLASSES; //上课中
            } else {
                state = Constants.CLASSES_END; //课程结束
            }
        } else {
            if (nowDte.before(regStartTime)) { //现在的时间小于报名开始时间
                state = Constants.BEFORE_REGIST_START; //报名未开始
            } else if (nowDte.before(regEndTime)) {
                state = Constants.BEFORE_REGIST_END; //报名中
            } else if (nowDte.before(startTime)) {
                state = Constants.REGIST_END; //报名结束
            } else if (nowDte.before(startTime)) { //现在的时间小于开课时间
                state = Constants.REGIST_END; //报名中
            } else if (nowDte.before(endTime)) {
                state = Constants.GOING_CLASSES; //上课中
            } else {
                state = Constants.CLASSES_END; //课程结束
            }
        }
        return state;
    }
}
